{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "# Ch `09`: Concept `01`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "## Using the CIFAR-10 dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Download the CIFAR-10 dataset for Python here https://www.cs.toronto.edu/~kriz/cifar.html.\n",
    "\n",
    "The documentation comes with the following helper function:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "import pickle\n",
    "\n",
    "def unpickle(file):\n",
    "    fo = open(file, 'rb')\n",
    "    dict = pickle.load(fo, encoding='latin1')\n",
    "    fo.close()\n",
    "    return dict"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Each image is a flat vector of colored pixel values. We'll convert it to a matrix of pixels instead to make it easer to reason about the image. \n",
    "\n",
    "First, let's grayscale the image so that we can deal with a more natural representation.\n",
    "\n",
    "Then, we'll crop the edges of the image away to further similify the number of dimensions in the input data.\n",
    "\n",
    "Finally, we'll normalize the input by subtracting the mean pixel intensity and dividing by the standard deviation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "def clean(data):\n",
    "    imgs = data.reshape(data.shape[0], 3, 32, 32)\n",
    "    grayscale_imgs = imgs.mean(1)\n",
    "    cropped_imgs = grayscale_imgs[:, 4:28, 4:28]\n",
    "    img_data = cropped_imgs.reshape(data.shape[0], -1)\n",
    "    img_size = np.shape(img_data)[1]\n",
    "    means = np.mean(img_data, axis=1)\n",
    "    meansT = means.reshape(len(means), 1)\n",
    "    stds = np.std(img_data, axis=1)\n",
    "    stdsT = stds.reshape(len(stds), 1)\n",
    "    adj_stds = np.maximum(stdsT, 1.0 / np.sqrt(img_size))\n",
    "    normalized = (img_data - meansT) / adj_stds\n",
    "    return normalized"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Here's a helper function to load and clean all the images:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "def read_data(directory):\n",
    "    names = unpickle('{}/batches.meta'.format(directory))['label_names']\n",
    "    print('names', names)\n",
    "\n",
    "    data, labels = [], []\n",
    "    for i in range(1, 6):\n",
    "        filename = '{}/data_batch_{}'.format(directory, i)\n",
    "        batch_data = unpickle(filename)\n",
    "        if len(data) > 0:\n",
    "            data = np.vstack((data, batch_data['data']))\n",
    "            labels = np.hstack((labels, batch_data['labels']))\n",
    "        else:\n",
    "            data = batch_data['data']\n",
    "            labels = batch_data['labels']\n",
    "\n",
    "    print(np.shape(data), np.shape(labels))\n",
    "\n",
    "    data = clean(data)\n",
    "    data = data.astype(np.float32)\n",
    "    return names, data, labels"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "source": [
    "Let's display some images from the dataset:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "names ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']\n",
      "(50000, 3072) (50000,)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f808c10f828>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import random\n",
    "random.seed(1)\n",
    "\n",
    "names, data, labels = read_data('./cifar-10-batches-py')\n",
    "\n",
    "def show_some_examples(names, data, labels):\n",
    "    plt.figure()\n",
    "    rows, cols = 4, 4\n",
    "    random_idxs = random.sample(range(len(data)), rows * cols)\n",
    "    for i in range(rows * cols):\n",
    "        plt.subplot(rows, cols, i + 1)\n",
    "        j = random_idxs[i]\n",
    "        plt.title(names[labels[j]])\n",
    "        img = np.reshape(data[j, :], (24, 24))\n",
    "        plt.imshow(img, cmap='Greys_r')\n",
    "        plt.axis('off')\n",
    "    plt.tight_layout()\n",
    "    plt.savefig('cifar_examples.png')\n",
    "\n",
    "show_some_examples(names, data, labels)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
